<?php
namespace Admin\Controller;

class ClassAllotController extends AdminController {
	/**
	 * 班级信息
	 * 
	 * 		获取页面参数,获取session中学校数据，查询该学校的班级信息，班级人数，教师信息。
	 */
    public function index(){
        $class_sno			=	I('class_sno');
        $map['ci.schoolid']	=	session('user_auth.schoolid');
        $map['ci.status']  	=	array('neq','-1');//班级状态（-1：已删除，0：禁用，1：正常）
        $map['ci.undergraduate']	=   1;//是否毕业（1，表示未毕业，0表示已毕业）
        $map['ci.class_sno']=   array('like', '%'.(string)$class_sno.'%');
        $classTeacherModel	=	M('ClassInfo ci')->join('primary_teacher t ON t.uid = ci.teacherid','LEFT');//班级表左连接了教师表的模型
        $classList   = $this->lists(
        		$classTeacherModel, 									//多表模型
        		$map,													//查询条件
        		'ci.teacherid,ci.id desc',								//排序方式
        		'ci.id,ci.class_name,ci.studentcount,ci.class_sno,t.teachername,t.teacher_tel'	//查询字段
             );        
        $this->assign('_list', $classList);
        Cookie('__forward__',$_SERVER['REQUEST_URI']);
        $this->display();
    }
    
	/**
	 * 分配学生
	 * @param string $id     	班级id
	 * @param string $ids		该班级的学生id
	 * @param string $not_ids	未分配班级的学生id
	 * 
	 * 		获取页面参数，修改学生的班级号。
	 * 
	 * 		获取该班学生信息，该校未分配学生信息，班级号，显示页面。
	 */
    public function allot($id='',$ids='',$not_ids=''){
    	if(IS_POST){			
    		$studentModel	=	M('Student');
    		$classModel		=	M('ClassInfo');
    		//在学生表将   该班级学生  的班级号修改为该班 
			if($ids!=''){
				$ClassMap['id'] =   array('in',$ids);
				$setClassID['classid']=$id;
				$studentModel->where($ClassMap)->save($setClassID);
// 				dump(count($ids));
				$setCount['studentcount']=count(explode(',', $ids));
				$classModel->where('id='.$id)->save($setCount);
			}
			//在学生表将   该问分配班级学生  的班级号修改为0
			if($not_ids!=''){
				$noneMap['id'] =   array('in',$not_ids);
				$setClassID['classid']=0;
				$studentModel->where($noneMap)->save($setClassID);
			}
			$this->success("修改成功！",Cookie('__forward__'));
    	} else {
    		$studentModel		=	M('Student');
    		$map['schoolid']	=	session('user_auth.schoolid');
	    	$map['status']  	=	array('eq',1);//学生状态:（-1：已删除，0：禁用，1：正常）显示正常。
 			$map['isstudy']  	=   array('eq',1);//在读状态:（1表示在读，2表示毕业，3表示退学，默认为1）显示在读。
	    	//获取本班学生信息
	    	$map['classid']  	=   $id;
	    	$studentInClass		= 	$studentModel->order('sno')->where($map)->select();
	    	//获取本校未分配学生信息
	    	$map['classid']  	=   0;
	    	$studentNotInClass  = 	$studentModel->order('sno')->where($map)->select();
			//获取班级信息
            $classModel         =   M('ClassInfo');
            $classList          =   $classModel->find($id);
            $this->assign('classList',$classList);
	    	$this->assign('classid', $id);
	    	$this->assign('_list', $studentInClass);
	    	$this->assign('n_list', $studentNotInClass);
	    	$this->display();
    	}
    }
    /**
	 * 查看学生
	 * 
	 * 		获取页面参数，查询学生信息，处理学生学号。
	 */
    public function view(){
    	$username       	=   I('username');
        $map['status']  	=	array('eq',1);//学生状态:（-1：已删除，0：禁用，1：正常）
 		$map['isstudy']  	=   array('eq',1);//在读状态:（1表示在读，2表示毕业，3表示退学，默认为1）显示在读。
        $map['classid']  	=   I('id');
        $map['username|sno']    =   array('like', '%'.(string)$username.'%');
        //获取学生信息
        $studentList   			= 	$this->lists('Student', $map);  
        $this->assign('_list', $studentList);
        $this->display();
    }
}